www.gusucode.com > VC 图书管理系统源码程序 > VC 图书管理系统/VC 图书管理系统/图书管理系统/FineDlg.cpp
// FineDlg.cpp : implementation file // #include "stdafx.h" #include "Library.h" #include "FineDlg.h" #include "ReaderDataSet.h" #include "FineDataSet.h" #include "stdlib.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFineDlg dialog CFineDlg::CFineDlg(CWnd* pParent /*=NULL*/) : CDialog(CFineDlg::IDD, pParent) { //{{AFX_DATA_INIT(CFineDlg) m_nAmount = 0; m_nDays = 0; m_dFineDate = COleDateTime::GetCurrentTime(); m_strReaderName = _T(""); m_strReaderID = _T(""); //}}AFX_DATA_INIT } void CFineDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFineDlg) DDX_Text(pDX, IDC_AMOUNT, m_nAmount); DDX_Text(pDX, IDC_DAYS, m_nDays); DDX_Text(pDX, IDC_FINE_DATE, m_dFineDate); DDX_Text(pDX, IDC_READER_NAME, m_strReaderName); DDX_Text(pDX, IDC_READER_ID, m_strReaderID); DDV_MaxChars(pDX, m_strReaderID, 8); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFineDlg, CDialog) //{{AFX_MSG_MAP(CFineDlg) ON_BN_CLICKED(IDC_CONFIRM, OnConfirm) ON_BN_CLICKED(IDC_EXIT, OnExit) ON_EN_KILLFOCUS(IDC_READER_ID, OnKillfocusReaderId) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFineDlg message handlers void CFineDlg::OnConfirm() { // TODO: Add your control notification handler code here // UpdateData(TRUE); // CWnd *pWnd; // pWnd = GetDlgItem(IDC_READER_ID); // pWnd->GetWindowText(m_strReaderId); if (m_szReaderID.IsEmpty()) { AfxMessageBox("请输入读者编码!"); return; } CString mSqlStr; CDatabase mDB; if(!mDB.Open(_T("library"))) AfxMessageBox("数据库打开出错"); mSqlStr = "UPDATE READER SET FLAG_BORROW='Y' WHERE READER_ID='" + m_szReaderID; mSqlStr = mSqlStr + "'"; try { mDB.ExecuteSQL(mSqlStr); } catch(CDBException e) { AfxMessageBox("执行错!"); return; } mSqlStr = "DELETE FROM FINE WHERE READER_ID='" + m_szReaderID; mSqlStr = mSqlStr + "'"; try { mDB.ExecuteSQL(mSqlStr); } catch(CDBException e) { AfxMessageBox("执行错!"); return; } char mTemp[10]; _itoa(m_nAmount,mTemp,10); mSqlStr = "INSERT INTO FINE_HISTORY(READER_ID,AMOUNT) VALUES ('" + m_szReaderID; mSqlStr = mSqlStr + "',"; mSqlStr = mSqlStr + mTemp; mSqlStr = mSqlStr + ")"; try { mDB.ExecuteSQL(mSqlStr); } catch(CDBException e) { AfxMessageBox("执行错!"); return; } mDB.Close(); AfxMessageBox("执行成功!"); } void CFineDlg::OnExit() { // TODO: Add your control notification handler code here CDialog::OnCancel(); } void CFineDlg::OnKillfocusReaderId() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_strReaderID.IsEmpty()) { AfxMessageBox("请输入读者编码!"); return; } m_szReaderID = m_strReaderID; CReaderDataSet m_rsReaderDataset; if(!m_rsReaderDataset.Open(AFX_DB_USE_DEFAULT_TYPE)) { AfxMessageBox("数据表打开失败!"); return; } m_rsReaderDataset.m_strFilter = "READER_ID='" + m_strReaderID; m_rsReaderDataset.m_strFilter = m_rsReaderDataset.m_strFilter + "'"; m_rsReaderDataset.Requery(); if (m_rsReaderDataset.IsEOF()) { AfxMessageBox("没有此读者!"); m_rsReaderDataset.Close(); return; } m_strReaderName = m_rsReaderDataset.m_NAME ; m_rsReaderDataset.Close(); CString mSqlStr; mSqlStr = "SELECT * FROM FINE WHERE READER_ID='" + m_strReaderID; mSqlStr = mSqlStr + "'"; CFineDataSet m_rsFineDataSet; if (!m_rsFineDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)) { AfxMessageBox("数据表打开失败!"); return; } if (m_rsFineDataSet.IsEOF()) { AfxMessageBox("读者没有罚款记录!"); m_rsFineDataSet.Close(); return; } m_nAmount = m_rsFineDataSet.m_AMOUNT ; m_nDays = m_rsFineDataSet.m_DAYS ; // m_dFineDate = m_rsFineDataSet.m_FINE_DATE ; m_rsFineDataSet.Close(); UpdateData(FALSE); }